package com.example.service;

import com.example.entity.User;

import java.util.List;
import java.util.Optional;

/**
 * 用户服务接口
 */
public interface UserService {
    
    /**
     * 保存用户信息（保证缓存与数据库一致性）
     * @param user 用户对象
     * @return 保存后的用户对象
     */
    User saveUser(User user);
    
    /**
     * 根据ID获取用户信息（缓存优先策略）
     * @param id 用户ID
     * @return 用户对象
     */
    Optional<User> getUserById(Long id);
    
    /**
     * 更新用户信息（保证缓存与数据库一致性）
     * @param id 用户ID
     * @param user 更新的用户信息
     * @return 更新后的用户对象
     */
    User updateUser(Long id, User user);
    
    /**
     * 删除用户（保证缓存与数据库一致性）
     * @param id 用户ID
     */
    void deleteUser(Long id);
    
    /**
     * 获取所有用户
     * @return 用户列表
     */
    List<User> getAllUsers();
}